Switches including Ethernet switches generally include numerous ports through which the switch receives and transmits data packets. These switches commonly include a plurality of switch modules with packet processors that operate at layer 2 and 3 of the Open Systems Interconnect (OSI) model but are capable of providing some layer 4 through 7 functionalities depending on the configuration. Operably coupling the various switch modules is a back plane comprising a switching fabric that provides a circuit-switched path linking each switch module to every other switch module. The switching fabric of the back plane is a store and forward device capable of storing packets until ready for output.
The bandwidth available to transfer packets between switching modules is limited. In order to regulate access to the switch fabric among the competing queues, packets are buffered at each of the ingress switching modules until a scheduler releases each of the packets from its queue. The queue memory in which the ingress packets are temporarily stored are generally categorized into a plurality of priority levels to provide higher levels of service to select traffic. In principle, the higher priority traffic is serviced prior to lower priority traffic, and time-critical flows transmitted through the switching fabric before less-critical traffic.
In practice, there are numerous bandwidth allocation schema for implementing queue prioritization, each with its own particular trade-offs. In strict priority, for example, a lower priority queue is only dequeued after all higher priority queues are empty, which can completely starve the lowest level queues. In a weighted fair queuing, each of the queues is assigned a weight indicating its relative importance to the other queues. Queues are then dequeued in a round robin fashion with each queue being allotted a percentage of the available bandwidth in proportion to its particular weight. In this manner, each of the queues is serviced with emphasis given to the highest priority queues.
As an unintended consequence of weighted fair queuing, some types of traffic in one or more queues can effectively exceed the prescribed upper bandwidth limits associated with a queue and effectively starve, albeit temporarily, other queues of their requisite bandwidth. A lower priority queue can starve the highest priority queue of bandwidth, for example, if the lower priority queue is permitted to monopolize the bandwidth by transmitting one or more relatively large packets to the switch fabric. Under these circumstances, the switching device may fall short of real time guarantees resulting in increased delay and jitter of high priority traffic. There is, therefore, a need for a switching device adapted to perform real-time traffic engineering on traffic flows of inter-blade traffic.